static void atk_selection_interface_init (AtkSelectionIface *iface);
-G_DEFINE_TYPE_WITH_CODE (GtkNotebookAccessible, gtk_notebook_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+G_DEFINE_TYPE_WITH_CODE (GtkNotebookAccessible, gtk_notebook_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
G_ADD_PRIVATE (GtkNotebookAccessible)
G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
- GtkContainerAccessibleClass *container_class = (GtkContainerAccessibleClass*)klass;
gobject_class->finalize = gtk_notebook_accessible_finalize;
class->initialize = gtk_notebook_accessible_initialize;
widget_class->notify_gtk = gtk_notebook_accessible_notify_gtk;
-
- /* we listen to page-added/-removed, so we don't care about these */
- container_class->add_gtk = NULL;
- container_class->remove_gtk = NULL;
}
static void
struct _GtkNotebookClass
{
- GtkContainerClass parent_class;
+ GtkWidgetClass parent_class;
void (* switch_page) (GtkNotebook *notebook,
GtkWidget *page,
struct _GtkNotebook
{
- GtkContainer container;
+ GtkWidget container;
GtkNotebookDragOperation operation;
GtkNotebookPage *cur_page;
double y,
GtkNotebook *notebook);
-/*** GtkContainer Methods ***/
-static void gtk_notebook_add (GtkContainer *container,
+static void gtk_notebook_remove (GtkNotebook *notebook,
GtkWidget *widget);
-static void gtk_notebook_remove (GtkContainer *container,
- GtkWidget *widget);
-static GType gtk_notebook_child_type (GtkContainer *container);
-static void gtk_notebook_forall (GtkContainer *container,
- GtkCallback callback,
- gpointer callback_data);
/*** GtkNotebook Methods ***/
static gint gtk_notebook_real_insert_page (GtkNotebook *notebook,
static guint notebook_signals[LAST_SIGNAL] = { 0 };
-G_DEFINE_TYPE_WITH_CODE (GtkNotebook, gtk_notebook, GTK_TYPE_CONTAINER,
+G_DEFINE_TYPE_WITH_CODE (GtkNotebook, gtk_notebook, GTK_TYPE_WIDGET,
G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE,
gtk_notebook_buildable_init))
{
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
- GtkContainerClass *container_class = GTK_CONTAINER_CLASS (class);
gobject_class->set_property = gtk_notebook_set_property;
gobject_class->get_property = gtk_notebook_get_property;
widget_class->set_focus_child = gtk_notebook_set_focus_child;
widget_class->compute_expand = gtk_notebook_compute_expand;
- container_class->add = gtk_notebook_add;
- container_class->remove = gtk_notebook_remove;
- container_class->forall = gtk_notebook_forall;
- container_class->child_type = gtk_notebook_child_type;
-
class->switch_page = gtk_notebook_real_switch_page;
class->insert_page = gtk_notebook_real_insert_page;
GtkNotebookPage *page = l->data;
l = l->next;
- gtk_notebook_remove (GTK_CONTAINER (notebook), page->child);
+ gtk_notebook_remove (notebook, page->child);
}
G_OBJECT_CLASS (gtk_notebook_parent_class)->dispose (object);
/* Private GtkContainer Methods :
*
- * gtk_notebook_add
* gtk_notebook_remove
* gtk_notebook_focus
* gtk_notebook_set_focus_child
- * gtk_notebook_child_type
- * gtk_notebook_forall
*/
static void
-gtk_notebook_add (GtkContainer *container,
- GtkWidget *widget)
-{
- gtk_notebook_insert_page_menu (GTK_NOTEBOOK (container), widget,
- NULL, NULL, -1);
-}
-
-static void
-gtk_notebook_remove (GtkContainer *container,
- GtkWidget *widget)
+gtk_notebook_remove (GtkNotebook *notebook,
+ GtkWidget *widget)
{
- GtkNotebook *notebook = GTK_NOTEBOOK (container);
GtkNotebookPage *page;
GList *children, *list;
gint page_num = 0;
GTK_WIDGET_CLASS (gtk_notebook_parent_class)->set_focus_child (widget, child);
}
-static void
-gtk_notebook_forall (GtkContainer *container,
- GtkCallback callback,
- gpointer callback_data)
-{
- GtkNotebook *notebook = GTK_NOTEBOOK (container);
- GList *children;
-
- children = notebook->children;
- while (children)
- {
- GtkNotebookPage *page;
-
- page = children->data;
- children = children->next;
- (* callback) (page->child, callback_data);
- }
-}
-
-static GType
-gtk_notebook_child_type (GtkContainer *container)
-{
- return GTK_TYPE_WIDGET;
-}
-
/* Private GtkNotebook Methods:
*
* gtk_notebook_real_insert_page
if (page->menu_label)
{
if (notebook->menu)
- gtk_widget_destroy (gtk_widget_get_parent (page->menu_label));
+ gtk_widget_unparent (gtk_widget_get_parent (page->menu_label));
g_clear_object (&page->menu_label);
}